import { defineStore, PiniaCustomStateProperties } from 'pinia'
import storage from '@/utils/storage'

interface IUserStore extends PiniaCustomStateProperties {
    userId?: Number // 用户ID 自增
    userName?: String // 用户名
    userPwd?: String // 用户密码 MD5 加密
    userEmail?: String // 用户邮箱
    mobile?: String // 手机号
    sex?: Number // 性别 0:男 1:女
    deptId?: [] // 部门
    job?: String // 岗位
    state?: {
        // 1:在职 2:离职 3:试用期
        type: Number
        default: 1
    }
    status?: {
        // 此账号是否可用 1:可用 2:禁用
        type: Number
        default: 1
    }
    role?: {
        // 用户角色 0:管理员 1:普通用户
        type: Number
        default: 1
    }
    roleList?: [] // 权限列表
    createTime?: object
    lastLoginTime?: object
    remark?: String
    token?: string
}

const useUserStore = defineStore('user', {
    state: (): IUserStore => {
        return {}
    },
    actions: {
        getUserInfo() {
            const userInfo = storage.get('userInfo') || {}
            if (userInfo) {
                this.$state = userInfo
            }
        },
    },
})
const userStore = useUserStore()
userStore.getUserInfo()
export default userStore
